package com.ifnk.portaljava.hlyt.service;

import com.ifnk.portaljava.hlyt.beans.User;

import java.util.List;
import java.util.Map;
/**
 * <p>Title:管理用户类接口 </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2010</p>
 *
 * <p>Company: </p>
 *
 * @author  xiaoyan.zhang.hlyt@gmail.com
 * @version 1.0
 */
public interface IUserService {
	List findAll();
	/**
	 * 添加一个新用户
	 * @param user
	 */
	String addUser(User user);
	/**
	 * 删除一个用户
	 */
	void deleteUser(User user);
	
	/**
	 * 更新一个用户
	 */
	void updateUser(User user);
	
	/**
	 * 检测用户名是否被占用
	 */
	User checkUserName(String name);
	/**
	 * 更新用户时检测该名称除了当前被操作对象以外有没有被其他用户占用
	 */
	Boolean checkUpdateUName(String updateUName,User user);
	
	/**
	 * 用户登录，根据用户输入的用户名和密码查找对应的用户信息
	 */
	User login(String loginName,String password);
	/**
	 * 从session中获取user对象，一般在刚更新sessin之后调用
	 * @return
	 */
	User getNewUser();
	/**
	 * 从session中获取存储用户各个模块权限的map
	 * @return
	 */
	Map getUserPermissionMap();
	/**
	 * 用户退出，把该用户对应的locked字段设为0
	 */
	void quit();
	/**
	 * 根据角色名称查询拥有该角色的用户列表
	 * @param roleName
	 * @return
	 */
	List<User> findUserByRoleName(String roleName);
	/**
	 * 更新用户最后一次的模块url
	 * @param url
	 */
	void updateLastModule(String url);
}
